The present invention relates to downloading of electronic files from the Internet or other communication channels.
The Internet is a worldwide interconnection of smaller networks of computers communicating among themselves via the TCP/IP protocol. One of the primary features of the Internet is the ability to download electronic files (xe2x80x9cfilesxe2x80x9d) from one host to another, using various types of file transfer protocols such as File Transfer Protocol (FTP), HyperText Transfer Protocol (HTTP), etc. The increasing popularity of the Internet as a whole, and as a medium for downloading files in particular, has led to network congestion and has resulted in slower download times.
Approximately 80% of all files transferred over the Internet are updated versions of previous files, for example, software updates, customer and supplier details, informational and statistical databases, books, manuals, encyclopaedias, and more. Furthermore, updated files often differ from the previous versions by only 10% or less. For example, a parts catalog listing all parts available from a manufacturer generally changes only slightly from one update to the next, since the number of parts that are added to or deleted from the catalog is generally small relative to the total number of parts in the catalog.
Currently, a user having a file on his computer and wishing to download an updated version of the file from the Internet downloads the entire updated version. An exception is a software patch in which a self-extracting file containing the patch and a program known as a restorer is downloaded to the user""s computer. The patch contains only the difference between the updated software version and the user""s software version. The restorer directly updates installed software on the user""s computer with the patch.
Downloading large files can be a time-consuming process. Occasionally the downloading process is interrupted, for example, due to the network connection failing or due to a power failure. In the case of an interrupted download, the file being downloaded at the time of the interruption must be downloaded again in its entirety, even if most of the file had already been transferred at the time of the interruption.
Therefore, it would be beneficial to reduce the size of the files being downloaded and therefore reduce the amount of time required to download files. It would also be beneficial to be able to resume the download of a file from the point where it was interrupted.
There are currently three main technologies for sending marketing information over the Internet directly:
a) advertisements on Web pages;
b) electronic mail (e-mail) messages;
c) Internet advertising using push technology.
Advertisements appearing on Web pages involve almost no targeting of the viewing audience, and are viewed only by those users that browse the particular web pages on which the advertisement appears.
E-mail messages are non-interactive and involve only partial targeting. For example, users who have purchased software and who wish to receive information about the software may register their e-mail addresses in a database of interested users that is maintained by the company that produces the software. The company then sends an e-mail message to the interested users whenever there is news regarding the software. If files are attached to the e-mail message, the user may choose not to open the attachment or save the files. The user may even choose not to read the e-mail message.
There are currently deals whereby a user receives a computer for free in return for allowing unsolicited advertisements to appear on the computer whenever it is connected to the Internet. This is known as Internet Advertising using xe2x80x9cpushxe2x80x9d technology, because instead of the user requesting information from servers, the servers push the unsolicited information to the user. The servers maintain a database of user identifiers, for example, the IP address of the computer. One of the problems with Internet Advertising is that lack of audience targeting. Another problem is that the user is repeatedly interrupted while using the computer, which can be very disruptive and annoying. Finally, advertisements are sent only to those users who have agreed to receive them, and the vast majority of Internet users never sea these pushed advertisements.
It would be beneficial to have a system for sending products and interactive marketing material in a non-disruptive manner to targeted users who have expressed an interest in receiving them without the suppliers of the products and marketing material requiring a database of targeted users.
One of the aspects of downloading ties is download for authorized clients only. For example, in an Internet software shop where the user selects software to download, the user is directed to a payment details form for providing account details such as a password or credit card details. Once the account details have been verified the user may download the software. If the account details are not verified, then the software may not be downloaded.
If the download is interrupted in the middle, the user generally has to complete the payment details form again and trust the he will not be charged twice by the shop. It is also expected that downloading bug fixes to the software will be free, while updated versions cost money.
The present invention provides a client-server system for managing versions of files an the client computer and the server computer, and for downloading versions of files from the server computer to the client computer.
The present invention also provides a client-server system for sending products and interactive marketing material in a non-disruptive manner to users who have expressed an interest in receiving them.
The present invention also provides a token based authorization system for download of files.
There is therefore provided in accordance with a preferred embodiment of the present invention a system for transferring a delta file from a first computer to a second computer, the first computer having a first version of a file and a second version of the file, and the second computer having the first version of the file. The system includes a delta builder for generating the delta file from the first and second versions on the first computer, a download manager for transferring the delta file from the first computer to the second computer, and a restorer for generating the second version from the first version on the second computer and the transferred delta file.
Moreover, in accordance with a preferred embodiment of the present invention, the delta file is generated based upon a bit analysis of the first and second versions on the first computer.
Furthermore, in accordance with a preferred embodiment of the present invention, the delta builder includes means for generating a first digital stamp from the first version on the first computer, the delta file includes the first digital stamp, the restorer includes means for generating a second digital stamp from the first version on the second computer, and the second version on the second computer is generated only is the second digital stamp matches the first digital stamp.
Additionally, in accordance with a preferred embodiment of the present invention, the download manager includes a download manager server on the first computer, and a download manager client on the second computer.
Moreover, in accordance with a preferred embodiment of the present invention, the download manager server includes means for communicating with the download manager client over an Internet Protocol (IP) network, and the download manager client includes means for communicating with the download manager server over an Internet Protocol (IP) network.
Furthermore, in accordance with a preferred embodiment of the present invention, the system further includes a database for storing the first and second versions of the file and for storing the delta file.
Additionally, in accordance with a preferred embodiment of the present invention, the system further includes a maintenance unit for importing an imported file into the database.
Moreover, in accordance with a preferred embodiment of the present invention, the imported file is a third version of the file or an additional delta file between one of the first and second versions and a third version of the file.
Additionally, in accordance with a preferred embodiment of the present invention, the system further includes a compressor for compressing the generated delta file, and a decompressor for decompressing the transferred delta file.
Moreover, in accordance with a preferred embodiment of the present invention, the system further includes means for automatically performing post-download actions on the generated second version.
Furthermore. In accordance with a preferred embodiment of the present invention, the post-download actions include at least one of the group comprising saving the generated second version to a storage unit, decompressing the generated second version, extracting the generated second version and installing the generated second version.
Additionally, in accordance with a preferred embodiment of the present invention, the first version of the file is an archive of a first folder version of a folder of files, the second version of the file is a second folder version of the folder of files, and the system further includes an extractor for extracting the second folder version from the generated second file.
There is also provided in accordance with a preferred embodiment of the present invention a system for transferring a delta file from a first computer to a second computer, the first computer having a first version of a folder of files and a second version of the folder, and the second computer having the first version of the folder. The system includes a delta builder for generating a delta folder from the first and second version on the first computer, an archiver for archiving the delta folder into the delta file, a download manager for transferring the delta file from the first computer to the second computer, an extractor for extracting the delta folder from the transferred delta file, and a restorer for generating the second version from the first version on the second computer and the extracted delta folder.
There is also provided in accordance with a preferred embodiment of the present invention a system for resuming an interrupted transfer of a file from a first computer having a complete version of the file to a second computer having an incomplete version of the file, the incomplete version missing a portion of the complete version, and the incomplete version having previously been transferred to the second computer during the interrupted transfer. The system includes a download manager server on the first computer for transferring only the missing portion to the second computer, and a download manager client on the second computer for receiving the missing portion and combining it with the incomplete version to form the complete version on the second computer.
There is also provided in accordance with a preferred embodiment of the present invention a token based authorization system for download of a file from a first computer to a second computer. The system includes a client on the second computer for requesting download of the file and for transferring account information to an account server, a download service layer integrated with the account server, for generating a token, associating the token with a first authorization level and sending the token to the client if the account information is verified by the account server, and a server on the first computer for associating a second authorization level with the file, for receiving the token and the first authorization level from the download service layer, for receiving the token from the client, and for downloading the file to the client if the token received from the download service layer matches the token received from the client and if the first authorization level is no less than the second authorization level.
Moreover, in accordance with a preferred embodiment of the present invention, the client has a client identifier and the token is based upon the client identifier.
There is also provided in accordance with a preferred embodiment of the present invention a method for transferring a delta file from a first computer to a second computer, the first computer having a first version of a file and a second version of the file, and the second computer having the first version of the file. The method includes the steps of generating the delta file from the first and second versions on the first computer, transferring the delta file from the first computer to the second computer, and generating the second version from the first version on the second computer and the transferred delta file.
There is also provided in accordance with a preferred embodiment of the present invention a method for transferring a delta the from a first computer to a second computer, the first computer having a first version of a folder of files and a second version of the folder, and the second computer having the first version of the folder. The method includes the steps of generating a delta folder from the first and second variations on the first computer, archiving the delta folder into the delta file, transferring the delta file from the first computer to the second computer, extracting the delta folder from the transferred delta file, and generating the second, version from the first version on the second computer and the extracted delta folder,
There is also provided in accordance with a preferred embodiment of the present invention a method for resuming an interrupted transfer of a file from a first computer having a complete version of the file to a second computer having an incomplete version of the file, the incomplete version missing a portion of the complete version, and the incomplete version having previously been transferred to the second computer during the interrupted transfer. The method includes the steps of transferring only the missing portion to the second computer, receiving the missing portion, and combining it with the incomplete version to form the complete version on the second computer.
There is also provided in accordance with a preferred embodiment of the present invention a method for downloading a file from a download server to a download client when the user of the download client is authorized to do so by an account server. The method includes the steps of associating the file with a first authorization level, and verifying account details of the user at the account server. If the step of verifying is successful, generating a token on the account server and associating the token with a second authorization level, sending the token from the account server to the download client, sending the token and the second authorization level from the account server to the download server, sending the token from the download client to the download server, and downloading the file from the download server to the client only if the second authorization level is no less than the first authorization level and if the token from the account server matches the token from the download client.
There is also provided in accordance with a preferred embodiment of the present invention a method for transferring files from a first computer to a second computer. The method includes the steps of the second computer reporting a version indicator to the first computer, the version indicator indicating which versions of the target file currently reside but which are not necessarily installed on the second computer, the first computer correlating the version indicator with either of at least one delta file and a base file in accordance with predetermined correlation criteria, thereby defining at least one correlated file, and the first computer transferring the correlated file to the second computer.
Moreover, in accordance with a preferred embodiment of the present invention, the method further includes the step of the second computer requesting a target file from the first computer.